Method and apparatus for selecting button functions and retaining selected options on a display

ABSTRACT

A graphical user interface method wherein a user can retain frequently used menus on the display screen in an intuitive manner. A computer system is coupled to a display for displaying graphic and other data and to a pointer control device which permits a user to selectively position a pointer on the display and signal selections with a switch. Graphical menu buttons are displayed on the screen which correspond to menus displaying further functions. When a menu button is selected by the user, a menu appears in a rectangular box containing an icon of a pushpin and a plurality of menu choices which can be selected. If the user places the pointer over the pushpin icon and then releases the pointer control device switch, the icon of the pushpin is then modified so it appears that the pushpin has &#34;pinned&#34; the menu to the screen. The temporary menu box is converted into a permanent window which remains on the display regardless of other display operations. The user may dismiss the menu window at any time by placing the pointer over the pushpin icon and momentarily depressing and releasing the switch on the pointer control device. The invention therefore provides an intuitive means for retaining frequently used menus on a graphical user interface screen.

This is a continuation of application Ser. No. 07/458,596 filed Dec. 26,1989, now abandoned, which is a continuation-in-part of Ser. No.323,774, filed Mar. 15, 1989, now abandoned.

1. Related Applications

The present application is a File Wrapper Continuation of U.S. patentapplication Ser. No. 07/458,596, filed Dec. 29, 1989, now abandonedwhich was a continuation-in-part of U.S. patent application, Ser. No.07/323,774, filed Mar. 15, 1989. The present application is related toU.S. patent application, Ser. No. 07/875,194, filed Apr. 24, 1992, whichis a continuation-in-part of U.S. patent application Ser. No.07/323,775, filed Mar. 15, 1989, entitled: "Method and Apparatus forSelecting and Executing Defaults in a Window Based Display System" andU.S. Pat. No. 5,157,768 which is a continuation-in-part of U.S. patentapplication Ser. No. 07/323,669 filed Mar. 15, 1989 entitled "Method andApparatus for Displaying Context Sensitive Help Information on aDisplay", and hereby refers to, and incorporates by reference thecontents of the above-referenced applications.

2. Field of the Invention

The present invention relates to apparatus and methods for displayingand manipulating graphic information, and more particularly, the presentinvention relates to a computer controlled display system for selectingcontrol functions, and retaining desired data disposed in a menu on adisplay regardless of other display operations in process.

3. Art Background

It is common for computer display systems to represent and conveyinformation to a user through various graphic representations of data.Representations of data may take a variety of forms, such as forexample, alphanumeric characters, Cartesian graphs, as well as shapes ofwell known physical objects. Today, many computer systems utilize one ofa variety of object oriented user interfaces in which many previouslycoded programming commands are replaced with two or three dimensionalgraphic images on a computer display. The object oriented systemutilizes various icons which symbolically indicate the type of operationthe computer system will execute if the icon function is chosen. Inaddition, many object oriented interfaces utilize multiple "windows"displayed on the cathode ray tube (CRT) display in which combinations oftext and graphics are used to convey information to a user. Each windowmay take the form of a variety of objects such as a file folder,loose-left binder, or simple rectangle, and the windows may overlap oneanother with the "top" window fully visible and constituting the currentwork file. The user may delete information from a window, move data fromone window to another, and generally operate on the window as if anactual file in an office is being used. Thus the user is permitted tooperate on and manipulate the window contents, and the window itself, asif the image constituted an actual object. Numerous object orientedsystems exist today and are displayed on computers manufactured by theassignee: Sun Microsystems, Inc., as well as other manufacturers,including: International Business Machines, Apple Computer, Inc., andothers. [See, D. Robson, "Object Oriented Software Systems" , BYTE, Aug.1981, p. 74, Vol. 6, No. 8; and L. Tesler, "The Small Talk Environment",BYTE, Aug. 1981, p. 90, vol. 6, No. 8. See also, U.S. Pat. No. Re.32,632, reissued Mar. 29, 1988.]

Although a variety of object oriented interfaces have been developed byvarious computer manufacturers, the various methods by which a userinterfaces with the computer display system varies significantly betweenmachines. In addition, the functionality of the graphic interface of acomputer system significantly impacts the efficiency and ease of user ofthe particular computer. It has been found that certain features aredesirable to be incorporated into the graphic interface of objectoriented computer display systems, and the present invention disclosesone such significant improvement to permit a user to select buttoncontrol functions, and retain certain data on the display regardless ofother display operations being performed by the computer system. As willbe described, the present invention provides apparatus and methods whichpermit a user to choose a particular object oriented function whichresults in the generation and display of a "menu" on the display. Thepresent invention further permits the user to retain the contents of theselected menu on the display while the display system is performingother unrelated operations.

SUMMARY OF THE INVENTION

An apparatus and method is disclosed which has application for use incomputer controlled display systems, and in particular, display systemshaving object oriented graphic interfaces. A central processing unit(CPU) is provided and is coupled to a display for displaying graphic andother data. The CPU is further coupled to a pointer control device whichpermits a user to selectively position a pointer at a desired locationon the display, and signal the CPU of selections in accordance with theteachings of the present invention. Buttons are generated by the CPU anddisplayed which correspond to either a single function to be executed bythe CPU, or a menu button which has associated therewith a plurality offunctions disposed on a menu. A user chooses a desired button or menubutton by positioning the pointer over at least a portion of the buttonor menu button and depressing a first switch on the pointer controldevice. If the user chooses a single button, the CPU then immediatelyexecutes the function. In the event that the user chooses a menu button,upon sensing the depression of a switch and the position of the pointerover the button, the CPU generates and displays a menu corresponding tothe menu button. The menu includes a plurality of menu items includingthose that have a menu mark indicative of a sub-menu associated with theitem. The menu may also include a first icon, which presently is in theform of a pushpin.

The placement of the pointer over the pushpin and releasing the switchon the pointer control results in the CPU converting the menu into awindow. The CPU then retains this pinned window on the displayregardless of other display operations performed. The window may bedismissed, at any time, by placing the pointer over the pushpin andmomentarily depressing and releasing a switch on the pointer controldevice. The present invention further includes apparatus and methods forselecting and executing a default function associated with a menubutton.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a computer incorporating the teachings of the presentinvention.

FIG. 2 shows one arrangement of program storage for the system of FIG.1.

FIGS. 3(a)-(c) graphically illustrate the operation of the presentinvention in its preferred form.

FIGS. 4(a) and 4(b) illustrate additional features of the presentinvention wherein selected data is displayed in a separate predefinedareas of the screen.

FIG. 5 is a flow chart illustrating the sequence of steps utilized bythe present invention to retain specified data on the display,regardless of other display operations.

FIG. 6 illustrates the present invention's visual feedback for buttonfunction controls.

FIGS. 7(a)-7(c) illustrate the viewing of a button function defaultutilizing the teachings of the present invention.

NOTATION AND NOMENCLATURE

The detailed descriptions which follow are presented largely in terms ofalgorithms and symbolic representations of operations on data bitswithin a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art.

An algorithm is here, and generally, conceived to be a self consistentsequence of steps leading to a desired result. These steps are thoserequiring physical manipulations of physical quantities. Usually, thoughnot necessarily, these quantities take the form of electrical ormagnetic signals capable of being stored, transferred, combined,compared, and otherwise manipulated. It proves convenient at times,principally for reasons of common usage, to refer to these signals asbits, values, elements, symbols, icons, characters, terms, numbers, orthe like. It should be borne in mind, however, that all of these andsimilar terms are to be associated with the appropriate physicalquantities and are merely convenient labels applied to these quantities.

Furthermore, the manipulations performed are often referred to in terms,such as adding or comparing, which are commonly associated with mentaloperations performed by a human operator. No such capability of a humanoperator is necessary, or desirable in most cases, in any of theoperations described herein, which form part of the present invention;the operations are machine operations, although when dealing with agraphic interface, by its nature, the man/machine interface utilizessome form of a human input. Useful machines for performing theoperations of the present invention include general purpose digitalcomputers or other similar devices, such as, for example, thosemanufactured by the assignee, Sun Microsystems, Inc. In all cases thereshould be borne in mind the distinction between the method operationsand operating a computer and the method of computation itself. Thepresent invention relates to apparatus and methods for operating acomputer and processing electrical or other physical signals to generateother desired results.

The present invention also relates to apparatus for performing theseoperations. This apparatus may be specially constructed for the requiredpurpose or it may comprise a general purpose computer as selectivelyactivated or reconfigured by a computer program stored in the computer.The images, algorithms, and data structures presented herein are notinherently related to any particular computer or other apparatus. Inparticular, various general purpose machines may be used with programswritten in accordance with the teachings herein, or it may prove moreconvenient to construct more specialized apparatus to perform therequired method steps. In addition, no particular programming languagehas been indicated for carrying out the various procedures describedherein. This is due in part that the fact that not all languages thatmight be mentioned are universally available. Each user of a particularcomputer will be aware of the language which is most suitable for hisimmediate purposes. In practice it has been proven useful tosubstantially implement the present invention in an assembly languagewhich provides a machine executable object code. Accordingly, nodetailed program listings have been provided. It is considered that theoperations and other procedures described herein and illustrated in theaccompanying drawings are sufficiently disclosed to permit one ofordinary skill to practice the instant invention or so much of it as isof use to him/her.

DETAILED DESCRIPTION OF THE INVENTION

The present invention discloses apparatus and methods for selecting afunction control and retaining desired data on a display regardless ofother computer operations which may occur. In particular, the presentinvention discloses a unique graphic interface in which the user maychoose a function default, as well as selectively retain data on thedisplay during other computer operations. In the following description,numerous specific details are set forth such as computer display systemelements, display formats, sample data, etc. in order to provide a morethorough understanding of the present invention. However, it will beapparent to one skilled in the art that the present invention may bepracticed without these specific details. In other instances, well knowncircuits and structures are not described in detail in order not toobscure the present invention unnecessarily.

FIG. 1 illustrates a computer based system for generating graphic imagesin accordance with the teachings of the present invention. Shown is acomputer 10 which comprises three major components. The first of theseis an input/output (I/O) circuit 12 which is used to communicateinformation in appropriately structured form to and from other portionsof the computer 10. In addition, computer 10 includes a centralprocessing unit (CPU) 14 coupled to the I/O circuit 12 and a memory 16.These elements are those typically found in most general purposecomputers and, in fact, computer 10 is intended to be representative ofa broad category of data processing devices. Also shown in FIG. 1illustrates a keyboard 18 to input data and commands into computer 10,as is well known. A magnetic disk 20 is shown coupled to I/O circuit 12to provide additional storage capability for the computer 10. It will beappreciated that additional devices may be coupled to computer 10 forstoring data such as magnetic tape drives, bubble memory devices, aswell as networks which are in turn coupled to other data processingsystems. As is well known, disk 20 may store other computer programs,characters, routines, etc., which may be accessed and executed by CPU14. A raster display monitor 24 is shown coupled to the I/O circuit 12and is used to display images generated by CPU 14 in accordance with thepresent invention. Any well known variety of cathode ray tube (CRT)display may be utilized as display 24. A pointer control device 28 isalso shown coupled to computer 10 through I/O circuit 12. Pointercontrol device 28 includes switches 30, 32 and 34 for signalling CPU 14in accordance with the teachings of the present invention. Pointercontrol device 28 (commonly known as a "mouse") permits a user to selectvarious command modes, modify graphic data, and input other datautilizing switches 30, 32 and 34. More particularly, pointer controldevice 28 permits a user to selectively position a pointer 36 at anydesired location on display 24 by movement of the pointer control device28 over a surface 40. In the presently preferred embodiment, pointercontrol device 28 utilizes a well known optical method for signallingCPU 14 of positional changes of pointer 36 by movement of pointercontrol over a grid disposed on surface 40. However, it will beappreciated that a variety of well known pointer control devices may beutilized by the present invention, including other pointer controldevices such as mechanical mice, track balls, joy sticks, etc.

FIG. 2 shows one arrangement of major programs contained within thememory 16 illustrated in FIG. 1. In particular, there is shown a framebuffer 50, which comprises a bit map of display 24. The frame buffer 50represents the video memory for the display 24, wherein, each storagelocation in the frame buffer 50 corresponds to a pixel on the display24. Thus, the frame buffer comprises a two dimensional array of pointshaving known coordinates corresponding to the pixels on the rasterdisplay. In its simplest form, frame buffer 50 comprises a contiguousblock of memory which is allocated such that each memory location ismapped onto the corresponding pixel on the rastor display 24. Memory 16also includes a variety of other programs 54 for execution by the CPU14. For example, a variety of control, display, and calculating programsimplementing the operations and routines described in this Specificationmay be stored in memory 16, as well as monitor control programs and diskoperating systems. Moreover, memory 16 further includes space for otherprograms and spare memory (56) which may be used for a variety of otherwell known functions and operations in data processing systems.

Referring now to FIG. 3(a), in the presently preferred embodiment, avariety of "windows" may be displayed on display 24. As shown in FIG.3(a), a representative window includes a variety of data within thebounded window, in the form of graphics, text and symbols. For example,in FIG. 3(a) there is shown a representative base window identifiedgenerally by the numeral 80, which is in the form of a rectangular areaon display 24. In the example of FIG. 3(a), base Window 80 includes awindow title 82 (in the present example "edit") and a window menu button84 which is displayed at the left side of the header in the window. Uponselection of the Window menu button, a variety of menu items will bedisplayed having functions related to the window including a functionthat closes the window. Preferably the close function is the defaultmenu item for the Window menu button such that it can be easily selectedusing the default function as described below. By placing pointer 36 onthe Window menu button 84, and momentarily activating pointer controlswitch 30 to select the default function "close", the window is closed.Once closed, the base window 80 is no longer displayed on display 24 andis represented on the display as an icon.

A control area 86 is provided for the display of button functions, whichwill be described in more detail below. Window 80 further includesresize corners 90 through 93 which are used to shrink or expand theborders of window 80, thereby changing the area of the window withoutchanging the relative size of the controls, fonts, icons, etc. displayedwithin window 80. CPU 14 further displays the image of a verticalscrollbar 100, as shown, which permits text, graphics and the likewithin the working area 106 of window 80 to be scrolled in the directionin which the scroll bar is "pulled". The scrollbar, in the presentlypreferred embodiment may be moved by placing pointer 36 over the arrowsof the scrollbar 100 and activating a selected switch on pointer controldevice 28, or alternatively, by placing the pointer 36 on the scrollbar,depressing a preselected switch on pointer control 28, and moving thepointer control device in the direction in which the text or the likewithin the working area 106 is to be scrolled. Although not shown,window 80 may also incorporate the use of a horizontal scrollbar toselectively scroll horizontally through the text, graphics, etc.disposed within the working area 106.

As shown in FIG. 3(a), a plurality of button functions may be disposedwithin window 80. Although the button functions (in the present exampleentitled: "file", "edit", "view", "find", "properties", and "delete")are illustrated in area 86, the button control functions may bedisplayed in other control areas, as will be described below. Althoughillustrated horizontally, button functions may also be arrayedvertically within the window, and button function names may be in theform of text and/or graphics. In the presently preferred embodiment,button functions may take the form of a single button function, menubuttons, window buttons and abbreviated buttons. A single buttonfunction is used for a single command to be executed by CPU 14 (forexample "Delete"). A menu button is used to group commands, referred toas menu items, together in logical sets on a menu which is displayedwhen the particular menu button is chosen by a user. Typically, thelabel on the menu button is the title or category name of the group ofmenu items on the menu and submenus, and not one of the menu items (forexample, "edit").

A window button opens a pop-up window, which is described in detailbelow. A window button is represented by a window mark (. . . )following the button's label suggesting "more to come". An abbreviatedbutton provides a compact form of a button (e.g., single buttonfunction, menu button and window button), when it is desirable to omitthe label inside the button to save space by omitting the labelaltogether or to place the label outside the button. For example, themenu button 84 is an abbreviated menu button.

As shown in FIG. 3(a), and illustrated in the flow chart of FIG. 5,appropriate programming of computer 10 is provided such that a pluralityof menu buttons and/or single button functions are displayed withinwindow 80. In the example of FIG. 3(a), window 80 includes six buttons,identified as "edit", "file", "view", "find", "properties", and"delete". The placement of the Pointer 36, over the "delete" button ofFIG. 3(a) by a user utilizing a pointer control device 28, and theactivation of a switch (for example, switch 34) on the pointer controldevice 28 by a user, results in the computer 10 executing the deletefunction of a selected object. The placement of pointer 36, over the"edit" menu button of FIG. 3(a) by a user utilizing pointer controldevice 28, and the activation of a switch (for example, switch 34) onthe pointer control device 28 by a user, results in computer 10generating and displaying a menu 120 below the corresponding menu button(in the present example, "edit") as illustrated. Activation of a switch(for example, switch 34) of the pointer control device 28 while thepointer is within a region (for example, the base window) or on anobject may also activate a menu. As shown, menu 120 includes a pluralityof items which correspond to executable functions by CPU 14. In thepresent example, menu items disposed within menu 120 include suchfunctions as "cut", "copy", "paste", "again" and "undo", which may bechosen by a user utilizing pointer control device 28. In addition, menusmay include settings which can be set or changed. The selection of amenu item by a user results in the immediate execution of the functionby CPU 14.

Menu items are similar to buttons and provide the same functionality assingle buttons, window buttons and menu buttons. Referring to FIG. 6, amenu for the workspace 226 containing four types of menu items aredisplayed. "Programs" and "Utilities" are menu items. The menu mark 227points to the right to show that the submenus for the particular menuitems will be displayed to the right of each item. The item "Properties"is a window item; choosing it displays a property window. "Exit" is asingle command item; choosing it exits the workspace.

Frequently, the commands corresponding to the items on a menu arerequired by a user throughout a variety of operations of the displaysystem of the present invention. As is known, in many prior art systemsthe selection of a command function on a menu results in the immediateexecution of the selected command and the dismissal of the menu suchthat it is no longer displayed to the user. Accordingly, in order toperform additional functions requiring the items disposed within menu120, the user must once again choose the edit menu button using pointer36 as well as the particular item on menu 120 which is desired. As willbe described more fully below, the present invention permits menubuttons [such as "edit" in FIG. 3(a)] to include a default functionwhich may be previewed by a user prior to execution (see FIGS. 6 and 7)without the necessity of displaying the entire menu associated with theparticular menu button.

To avoid the inefficient and time consuming requirement of reselecting aparticular menu button within window 80 to execute a particular itemdisposed within a menu (such as menu 120), the present inventionincorporates an apparatus and method to retain the menu on the display24 regardless of other operations executed by computer 10 for display.In accordance with the teachings of the present invention, an icon 150is provided, and is shown in FIGS. 3(a)-3(c), which may be selected by auser using pointer control device 28 to retain the menu on the display.If the user desires to retain a menu (for example menu 120) on display24, the menu button is chosen by placing the pointer 36 over theparticular menu button desired. The user then signals CPU 14 of theselection by depressing a switch disposed on pointer control device 28(switch 34). The CPU 14 displays the corresponding menu containing atleast one menu item, as well as icon 150. As illustrated, in thepresently preferred embodiment icon 150 takes the form of a "pushpin"including a pin 152 and a pin head 154. In addition, in the presentlypreferred embodiment computer 14 further displays a small open circle160 symbolically illustrating a pin hole.

Subsequent to the selection of a menu button (for example the "editfunction") and before choosing an item on the menu, the user "drags" thepointer 36 down such that it is over at least a portion of icon 150. Asillustrated in FIG. 3(b), once pointer 36 has been dragged to overlay atleast a portion of icon 150, CPU 14 modifies the icon image such that itappears to the user that the pin 152 has been inserted into pin hole160, thereby conceptually "pinning" the menu 120 onto the display 24.

As shown in FIG. 3(c), the deactivation of the pointer control switch(for example switch 32) notifies CPU 14 of the selection of icon 150 andCPU 14 then retains menu 120 on display 24, as will be described.Alternatively, the user may release the switch disposed on pointercontrol device 28, but before choosing an item on a menu, the user maypin the menu 120 to the display by moving the pointer such that it islocated over at least a portion of the icon 150 and providingpredetermined signal to the CPU, for example by depressing and releasingthe same or another switch disposed on pointer control device 28. TheCPU responds to these signals by modifying the icon image such that itappears that the pin has been inserted into the pin hole 160 andretaining the menu on display 24.

The selection of icon 150 converts the menu 120 into a window. Forpurposes of this Specification, the converted menu 120 is referred to asthe "menu (window) 120". As illustrated in FIG. 3(c), CPU 14 displaysthe title of the button function corresponding to menu (window) 120 (ina present example "edit") at the top of the window. In anotherembodiment, a pushpin is also displayed in the header which providesfunctionality similar to that described below with respect to pushpin152 of FIG. 4(b). In addition, a Window menu is associated with the menu(window) which may be accessed by selecting on a portion of the window.As a window, the menu 120 may be manipulated on the display 24 like anyother window. For example, the window may be repositioned on the displayusing the pointer control device 28. The movement of the menu (window)120 to another location on the display is illustrated in FIG. 4(a).

Other types of windows may include pushpins, such as pop-up windows. Apop-up window is a transitory window that may contain controls, that is,buttons, options and parameters to permit the user to review the contentof a window, select functions, fill in information or make choices.Pop-up windows have a pushpin (icon 150) so that the window may be"pinned" to the screen. Pop-up windows allow more flexibility than menusin the number, arrangement and types of items. For example some pop-upwindows allow the user to specify multiple items and then choose the"Apply" button to have all of the changes take effect. This isillustrated in the property pop-up window of FIG. 4(b) which shows apop-up window displayed by selecting and activating the "Properties"window button shown in FIG. 3(a). The property pop-up window includescontrols and settings which can be chosen and applied by the user toaffect the window display.

Referring now to FIG. 5 in conjunction with FIG. 4(a), if a user desiresto no longer retain menu (window) 120 on display 24, then to dismiss themenu (window) 120 such that it is no longer displayed, he must placepointer 36 over the pushpin, and momentarily activate a pointer controlswitch on pointer control device 28. The menu 120 will then no longer bedisplayed unless the original button function (in the present example"edit") is again chosen by the user. Similarly in the case of a pop-upwindow, the "unpinning" of the pop-up window 120, FIG. 4(b), results inits immediate dismissal and non-display. In an alternative embodiment,the menu (window) 120 or the pop-up window may be dismissed by executingthe "dismiss" function through the window menu associated with the menu(window) 120, the pop-up window or by depressing a predetermined key onthe keyboard.

Referring now to FIGS. 6 and 7, the present invention permits menubuttons to include a default function which is automatically executed bythe CPU 14 when a predefined signal originating from pointer control 28(switch 30) is provided by a user. Menu button defaults provide a quickand convenient way for a user to perform a function while stillproviding the flexibility to permit the user to make a different choicefrom a menu, or quickly change the default setting. A default setting isprovided for any menu button, including menu buttons in control areassuch as the "edit" menu button illustrated in FIG. 3(a), the "cut" menuitem disposed on the menu 120, and the window menu button 84 disposed inthe header. Typically the window menu button will have the defaultfunction set to be the "close" function such that execution of thedefault function will close the window to an icon representative of thewindow.

As best shown in FIG. 6, a single button function is illustrated andidentified by the numeral 200. As previously described, single buttonfunctions are used for single commands to be executed by the CPU. Thetitle (for example in FIG. 6, "quit") is the name of the button functionto be executed. Button functions may be disposed within a window singly,or arrayed in horizontal or vertical groups. As illustrated in thefigures, if a user places pointer 36 over at least a portion of thebutton function and chooses the button function by, for example,depressing a switch on the pointer control device 28, CPU 14 highlightsthe button function. An example of a highlighted button function isshown in FIG. 6, and identified by the numeral 210.

A menu button is identified by the menu mark "∇" as shown in FIG. 6 bythe numeral 215. The direction of the mark indicates the location wherethe corresponding menu is displayed. By placing the pointer 36 over atleast a portion of the menu button illustrated in FIG. 6, numeral 215,and choosing the menu button, a menu is generated corresponding to themenu button chosen. This is described above more fully with reference toFIGS. 3(a)-3(c) relating to the menu button "edit". Similarly, when awindow button 217 is chosen, a pop-up window is displayed to the user. Amenu item may also have a menu mark associated with it indicating that amenu is associated with the menu item. This is illustrated in FIG. 6wherein menu "workspace" 226 has two menu items, "Programs" and"Utilities" 227 which have menus associated with them. The menus may bedisplayed by positioning the pointer over the menu item 227 anddepressing a switch on pointer control device 28 while dragging thepointer in the direction of the menu mark. An item may be selected fromthe subsequently displayed window by positioning the pointer controldevice over the menu item desired and releasing the switch on pointercontrol device 28.

As illustrated in FIG. 6, a menu button which includes a default controlis identified in the menu by a ring around the item. The defaultcontrols can include menu settings as well as menu items and may beselected or changed by the user. For example, in the menu shown in FIG.6, the default control is the "cut" item identified by numeral 225. Thedefault can be easily changed by the user to one of the other menu itemsby choosing the menu, depressing a key or switch indicative of the"modify menu default" function, dragging the pointer to the menu itemthe user desires to be the default and releasing the key or switch. Thenumeral 230 illustrates a menu button with a default ring in which, asexplained below, the default item may be executed without the display ofa menu. In addition, the buttons 232 and 234 are illustrative of thebutton feedback provided to the user to assist the user in operating thebuttons. More particularly, button 232 indicates to the user that thebutton function is inactive, that is, unavailable to the user. Button234 indicates to the user that the button is busy, and the correspondingfunction is currently in use.

With reference now to FIGS. 7 and 3(a)-(c), the present invention's useof a menu button is described, which permits and combines menu andcommand mechanisms into a single user action. As described above and asbest shown in FIGS. 3(a)-(c), the selection of the "edit" menu buttonresults in the display of menu 12 which includes an item entitled "cut".A user desiring to execute the "cut" command may first choose the "edit"menu button and then place the pointer over at least a portion of theitem entitled "cut", and signal the computer of the selection asdescribed relative to FIGS. 3(a)-(c).

However, the present invention also permits the user to select afunction, for example, "cut", as the default setting for a menu button(in the present example "edit"). In order to execute the "cut" defaultcommand in the present example, the user simply places the pointer 36over a portion of the "edit" menu button, and depresses a predeterminedswitch (for example, switch 30) on pointer control device 28. CPU 14,sensing the activation of switch 30, displays the title of the defaultfunction (in the present example "cut") within the highlighted button,such that the default operation replaces the title of the button. Thedefault operation ("cut") is selected by deactivating switch 30 onpointer control device 28. The default function is then executed by CPU14 and thereby avoids the need for a user to execute additional steps tochoose the command from the menu. This is illustrated in FIG. 7 for theitem "Magnify" which is the default item for the "View" menu button. Thepointer is positioned over the "View" menu button and the predeterminedswitch is depressed resulting in the display of the "Magnify" defaultitem as the title of the menu button. Upon release of the switch thedefault function is executed. The default operation is typicallyinitialized to a pre-determined function but can be changed by the userto any of the button functions displayed on a menu corresponding to amenu button.

Although the present invention has been described with reference toparticular window examples in FIGS. 1-7, it will be appreciated by oneskilled in the art that the present invention may be implemented in anyone of the number of various windows and window configurations on adisplay system. Similarly, particular button functions illustrated inthe figures are only representative of one of many possibilities ofbutton and command configurations which may utilize the presentinvention. Moreover, it will be understood that the figures are forillustration only and should not be taken as limitations upon theinvention. It is contemplated that many changes and modifications may bemade, by one of ordinary skill in the art, to the materials andarrangements of the elements of the invention without departing from thesphere and scope of the invention as disclosed above.

We claim:
 1. In a computer controlled system having a display coupled toa central processing unit (CPU) performing a plurality of displayoperations, a method for retaining on said display a menu correspondingto a button function while allowing other display operations, comprisingthe steps of:(a) generating and displaying said button function on saiddisplay; (b) positioning a pointer on said display using a pointercontrol device coupled to said CPU, said pointer being placed over apredetermined area of said display corresponding to said buttonfunction; (c) providing a first signal to said CPU to denote theselection of said button function, said first signal being generated bya user placing a switch coupled to said CPU from a first position to asecond position; (d) generating and displaying said menu correspondingto said selected button function, said menu having a plurality ofborders, said menu including at least one menu item and an icon, saidicon being enclosed within said plurality of menu borders; (e)positioning said pointer over said icon, said switch being maintained insaid second position until said pointer is positioned over said icon;(f) placing said switch in said first position once said pointer hasbeen positioned over said icon; (g) retaining said menu on said displayduring said other display operations until said user positions saidpointer over said icon and then places said switch from said firstposition to said second position and then back to said firstposition;whereby said menu is selectively retained on said displayduring said other display operations.
 2. The method as defined by claim1 wherein in step (b) said pointer is placed over at least a portion ofsaid button function.
 3. The method as defined by claim 1 wherein saidswitch is disposed on said pointer control device.
 4. The method asdefined by claim 1 wherein in step (d) said menu is displayed generallybelow said button function and said menu comprises a rectangular area ofsaid display in which said menu items are displayed.
 5. The method asdefined by claim 1 further comprising the steps of:(h) positioning saidpointer over a predetermined area of said display corresponding to amenu item having a related adjacent submenu; (i) generating anddisplaying said adjacent submenu on said display, said adjacent submenucomprising a rectangular area of said display adjacent to said menu. 6.A computer controlled display system having a display coupled to acentral processing unit (CPU) performing a plurality display operationson said display, said display operations comprising displaying a menucorresponding to a button function, comprising:first display meanscoupled to said CPU for generating and displaying said button functionon said display; pointer control means coupled to said CPU forselectively positioning a pointer on said display; signal generationmeans coupled to said CPU including a switch having a first and secondpositions for signaling said CPU of the selection of said buttonfunction once said pointer is placed over a predetermined area of saiddisplay corresponding to said button function to be selected and a userplacing said switch from said first position to said second positionwhen said pointer is over said predetermined area; second display meanscoupled to said CPU for generating and displaying said menucorresponding to said selected button function, said menu comprising aplurality of borders and at least one menu item and an icon, said iconbeing enclosed within said plurality of menu borders; said switch beingplaced back in said first position by said user once said pointer hasbeen placed over said icon, said CPU then retaining said menu on saiddisplay during other display operations until said user places saidpointer over said icon and places said switch from said first positionto said second position and back to said first position, said menu thenno longer being retained on said display; whereby said menu isselectively retained on said display during said other displayoperations.
 7. The display system as defined by claim 6 wherein saidfirst predetermined area is over at least a portion of said buttonfunction.
 8. The display system as defined by claim 7 wherein saidpointer control means includes a pointer control device for movementover a surface, the movement of said pointer control device over saidsurface by said user resulting in a corresponding movement of saidpointer on said display.
 9. The display system as defined by claim 8wherein said switch is disposed on said pointer control device.
 10. Thedisplay system as defined by claim 9 wherein said pointer control deviceincludes a second and third switch.
 11. The display system as defined byclaim 7 wherein said menu is displayed generally below said buttonfunction, and said menu comprises a rectangular area of said display inwhich said menu items are displayed.
 12. The display system as definedby claim 7 wherein said icon has an appearance in the form of a pin witha head attached thereto, said CPU modifying the form of said pin oncesaid user has placed said pointer over said icon.
 13. The display systemas defined by claim 12 wherein said modification to the appearance ofsaid icon by said CPU comprises changes to said pin's form such thatsaid pin is in the form of having pinned said menu to said display. 14.The display system as defined by claim 13 wherein if said user placessaid pointer over said modified icon and places said switch from saidfirst to said second position and then back to said first position, saidCPU modifies said appearance of said icon such that said pin is returnedto said pin's original form.
 15. The display system as defined by claim14 wherein once said pin has been returned to said pin's original form,said menu is no longer displayed unless said corresponding buttonfunction is once again selected.
 16. The display system as defined byclaim 6 further comprising a third display means coupled to said CPU forgenerating and displaying an adjacent submenu, said adjacent submenubeing displayed adjacent to said menu when said pointer is placed on amenu item having a corresponding adjacent submenu.
 17. In a computercontrolled system having a display coupled to a central processing unit(CPU) performing a plurality of display operations, a method forretaining on said display a menu corresponding to a button functionwhile allowing other display operations, comprising the steps of:(a)generating and displaying said button function on said display; (b)positioning a pointer on said display using a pointer control devicecoupled to said CPU, said pointer being placed over a predetermined areaof said display corresponding to said button function; (c) providing afirst signal to said CPU to denote the selection of said buttonfunction, said first signal being generated by a user placing a switchcoupled to said CPU from a first position to a second position; (d)generating and displaying said menu corresponding to said selectedbutton function, said menu comprising a plurality of borders andincluding at least one menu item and an icon enclosed within saidplurality of menu borders, said icon having an appearance in the form ofa first pushpin, said first pushpin comprising a pin with a headattached thereto; (e) positioning said pointer over said icon, saidswitch being maintained in said second position until said pointer ispositioned over said icon; (f) modifying the appearance of said iconsuch that said icon has an appearance in the form of a second pushpin,said second pushpin having pinned said menu to said display; (g) placingsaid switch in said first position while maintaining said pointerpositioned over said icon; (h) retaining said menu on said displayduring said other display operations until said user positions saidpointer over said icon and places said switch from said first to saidsecond position and then back to said first position; whereby said menuis selectively retained on said display during said other displayoperations.
 18. The method as defined by claim 17 wherein said switch isdisposed on said pointer control device.
 19. The method as defined byclaim 17 wherein in step (d) said menu is displayed below said buttonfunction and said menu comprises a rectangular area of said display inwhich said menu items are displayed.